Rete di citazioni di ArXiv per la fisica delle particelle

http://snap.stanford.edu/data/cit-HepPh.html

Contiene un database delle citazioni degli articoli pubblicati su arxiv a proposito di fisica delle alte energie.

Sono presenti due tabelle:

  • la coppia di paper citante-citato
  • la data di pubblicazione di ciascun paper

Passi dell'esercitazione:

  1. scaricate ed estraete i dati (in modo programmatico)
  2. caricate i dataset
  3. per ogni articolo stimate quanti articoli citi e quanti lo citano
  4. unite questa informazione con la tavola della data di pubblicazione
  5. fate una (o più) delle analisi possibili
  6. graficate i risultati e salvate la figura
  7. rendete la pipeline automatica con Snakemake

domande possibili da rispondere:

  • come cambia nel tempo il modo di citare
    • i paper vecchi veniva citati di più?
    • tendevano a citare più o meno articoli?
  • relazione fra paper citati
    • i paper che sono molto citati, tendono a citare molto a loro volta?
    • i paper molto citati tendono a citare altri paper molto citati?
  • evoluzione nel tempo delle citazioni
    • qual è il numero di citazioni nel tempo di ciascun paper?

Per i più audaci: esiste la rete di citazioni dei paper teorici

http://snap.stanford.edu/data/cit-HepTh.html

che contiene anche i metadati sugli articoli, inclusi i nomi degli autori.

Provate a fare il parsing del file degli autori ed estrarre il numero di autori per paper, correlandolo con il successo del paper in questione!

file di riferimento

fisica delle alte energie, sperimentale

collegamenti fra gli ID degli articoli

http://snap.stanford.edu/data/cit-HepPh.txt.gz

data di pubblicazione degli articoli

http://snap.stanford.edu/data/cit-HepPh-dates.txt.gz

fisica delle alte energie, teorica

collegamenti fra gli ID degli articoli

http://snap.stanford.edu/data/cit-HepTh.txt.gz

data di pubblicazione degli articoli

http://snap.stanford.edu/data/cit-HepTh-dates.txt.gz

abstract degli articoli con gli autori

http://snap.stanford.edu/data/cit-HepTh-abstracts.tar.gz

In [1]:
%cd esercitazione
/home/enrico/lavoro/DataProgrammingCourse/esercitazione
In [2]:
import os
os.getcwd()
Out[2]:
'/home/enrico/lavoro/DataProgrammingCourse/esercitazione'

vediamo scaricare ed estrarre i file con python3, usando solo le librerie di base

In [3]:
from urllib.request import urlretrieve
url = "http://snap.stanford.edu/data/"
filename = "cit-HepPh.txt.gz"
local_filename, headers = urlretrieve(url+filename, filename)
In [9]:
import gzip
with gzip.open('cit-HepPh.txt.gz', 'rb') as source:
    with open('cit-HepPh_python.txt', 'wb') as destination:
        destination.write(source.read())

in generale posso estrarre gli archivi in modo più facile, ma per qualche motivo a me oscuro il formato ".gz" puro non sembra essere supportato direttamente.

In [ ]:
from shutil import unpack_archive
unpack_archive(filename)

dalla linea di comando posso usare i comandi wget ed gunzip

In [5]:
!wget http://snap.stanford.edu/data/cit-HepPh.txt.gz
--2017-03-17 09:48:12--  http://snap.stanford.edu/data/cit-HepPh.txt.gz
Resolving snap.stanford.edu (snap.stanford.edu)... 171.64.75.80
Connecting to snap.stanford.edu (snap.stanford.edu)|171.64.75.80|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1664504 (1.6M) [application/x-gzip]
Saving to: ‘cit-HepPh.txt.gz’

cit-HepPh.txt.gz    100%[=====================>]   1.59M   555KB/s   in 2.9s   

2017-03-17 09:48:25 (555 KB/s) - ‘cit-HepPh.txt.gz’ saved [1664504/1664504]

In [6]:
!gunzip -k cit-HepPh.txt.gz
In [10]:
!md5sum cit-HepPh.txt
!md5sum cit-HepPh_python.txt
e79f6ef17a4b0a2e94959af6fa88de72  cit-HepPh.txt
e79f6ef17a4b0a2e94959af6fa88de72  cit-HepPh_python.txt

Per chi volesse scaricare il file degli abstract, non essendo in formato gz, è necessario usare il comando tar invece di gunzip.

In [ ]:
!wget http://snap.stanford.edu/data/cit-HepTh-abstracts.tar.gz
# questo comando creerà diverse cartelle con dentro i singoli file degli abstract
!tar -xzf cit-HepTh-abstracts.tar.gz